import time
from public.action import *
from public.business import *
from public.testData import *
from public.tools import *

testCase = "DBshop004_取消订单流程"
# 1.在首页搜索"小米",点击搜索按钮
firefox=openBrowser(url) #调用自定义函数打开网页,url的值是在testData文件中定义的
#调用自定义函数进行登录
firefox.find_element_by_link_text('登录').click()
DBshopLogin(firefox,userName,password)
#在首页的搜索框输入小米
firefox.find_element_by_xpath('//input[@name="keywords"]').send_keys('小米')
#点击搜索按钮
firefox.find_element_by_xpath('//input[@type="submit"]').click()
# 2.选择小米mix3,加入到购物车,点击购物车按钮
#下拉右侧滚动条
firefox.execute_script("window.scrollTo(0,500)")
priceElement=firefox.find_element_by_id('goods_price_8')
#调用自定义函数进行模拟鼠标移动
moveToElement(firefox,priceElement)
#点击加入购物车按钮
firefox.find_element_by_xpath('//a[@onclick="add_cart(8, 2);"]').click()
#点击进入购物车
firefox.find_element_by_id('J_miniCart').click()
# 3.点击"去结算"按钮
firefox.find_element_by_link_text('去结算').click()
# 4.默认地址已经被选择,点击下一步按钮
firefox.find_element_by_xpath('//input[@value="下一步"]').click()
# 5.点击确认订单
firefox.find_element_by_xpath('//input[@value="确认订单"]').click()
#使用变量orderNO存储订单编号
orderNO=firefox.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
#6.点击 查看订单详情
firefox.find_element_by_xpath('//input[@value="查看订单详情"]').click()
#7 点击第一个取消订单,二次弹框 确认
firefox.find_element_by_xpath('(//button[text()="取消订单"])[1]').click()
firefox.switch_to.alert.accept()
#点击 无效订单
#点击交易完成
firefox.find_element_by_partial_link_text('无效订单').click()
firefox.find_element_by_name('search_order_sn').send_keys(orderNO)
firefox.find_element_by_xpath('//button').click()
#断言
try:
    firefox.find_element_by_link_text(orderNO).is_displayed()
    writeLog("%s 测试通过"%testCase)
except:
    writeLog("%s 测试失败" % testCase)
    getPhoto(firefox)
firefox.quit()

# import sys
# import os
# print('当前文件的所在目录/',os.path.dirname(__file__))
# curPath = os.path.abspath(os.path.dirname(__file__)) #获取当前文件的所在目录的绝对路径
# print('当前文件的所在目录\,',curPath)  #C:\Users\xhs\Desktop\dbshop项目相关文档2\dbshop1\main
# # 将当前文件的所在目录的绝对路径进行分离,分离成C:\Users\xhs\Desktop\dbshop项目相关文档2\dbshop1  和main,存到元组中
# print(os.path.split(curPath))
# rootPath = os.path.split(curPath)[0] #[0]表示元组中的第一个元素
# print(rootPath)

aaa=get_pro_rootpath()
writeFile(aaa+"\public\orderID.txt",orderNO)